package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.domain.entity.ext.OptionalRangeEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/8/21 10:00
 * @desrcption: 更新流程设计
 */
@Getter
@Setter
@ToString
public class ProcessTemplateUpdateDTO implements Serializable {

    private static final long serialVersionUID = 7570653026328358450L;

    /**
     * 流程模板id
     */
    private Long id;

    private String name;

    /**
     * //审批结束后是否允许编辑，1:选择允许，提交人可以再次编辑审批后内容；0:选择不允许，提交人不可以再次编辑审批后内容，数据权限是全公司的人除外。
     */
    @NotNull(message = "{dto.msg.processTemplateUpdate.allowEditAfterFinished.NotNull}")
    private Integer allowEditAfterFinished;

    /**
     * 无需审批角色,格式[roleid1,roleId2]
     */
    private List<OptionalRangeEntity> rolesWithoutApproveList;

    /**
     * 需审批字段,格式[field1,field2]
     */
    private List<String> needApproveFieldList;

    /**
     * 流程发起后是否允许撤回，1允许，0不允许
     */
    @NotNull(message = "{dto.msg.processTemplateUpdate.allowWithdraw.NotNull}")
    private Integer allowWithdraw;

    /**
     * 是否允许查看日志，1允许，0不允许
     */
    @NotNull(message = "{dto.msg.processTemplateUpdate.allowViewLog.NotNull}")
    private Integer allowViewLog;

    private Integer type;

    private Integer usePermission;
    /**
     * 审批人为空处理类型（默认为超管转交处理）
     * @see com.xbongbong.paas.enums.ProcessEmptyApproverTypeEnum
     */
    private Integer emptyApproverType;
    /**
     * 审批人去重
     *  1. 同一个审批人在流程中出现多次时，仅保留第一个 2. 同一个审批人仅在连续出现时，自动去重 3.不启用自动去重
     * @see com.xbongbong.paas.enums.ApproverDeduplicationEnum
     */
    private Integer approverDeduplication;

    /**
     * 发起人审批时是否自动通过
     */
    private Integer automaticallyApprovedSponsor;


    public ProcessTemplateUpdateDTO(){
        name = "";
    }
}
